草庐IT

C++ 空类或 typedef

全部标签

c++ - 我如何为 tr1::unordered_map 定义一个不绑定(bind)模板参数的宏/typedef/etc?

这可能是个有点傻的问题,但我不得不问。我正在尝试在C++中使用unordered_map类,但不是每次都将其作为tr1::unordered_map引用,我只想使用关键字hashMap。我知道typedeftr1::unordered_maphashMap有效,但这种修复了键的数据类型和对应于hashMap的值,而我希望有更多类似以下内容:#definehashMaptr1::unordered_map我可以根据需要定义键和值的数据类型,但这不起作用。以前有人遇到过这个问题吗?谢谢 最佳答案 这是C++11之前的C++所缺少的东西。

c++ - 模板 typedef c++0x

我发现了几个关于C++0x中模板类型定义的问题,这些问题通过using关键字解决;然而,使用GCC4.6.1(运行g++-std=c++0x),我得到以下错误:错误:在“使用”之前需要不合格的id你能帮我找出我哪里出错了吗?几个小时以来我一直在努力解决这个问题......代码:#includetemplateclassGenericSparseVector{protected:std::mapindices_to_values;};templateusingStandardSparseVector=GenericSparseVector; 最佳答案

c++ - 在没有 typedef 的情况下在 C++ 中返回函数指针时出错

我试图在不使用typedef的情况下返回指向函数的指针,但编译器(gcc)发出了一个奇怪的错误,就好像我无法进行那种设置一样。备注:使用typedef代码有效。代码:voidcatch_and_return(void(*pf)(char*,char*,int&),char*name_one,char*name_two,int&number)(char*,char*,int&){pf(name_one,name_two,number);returnpf;}错误:'catch_and_return'声明为返回函数的函数你能给我解释一下为什么编译器不允许我这样做吗?谢谢!

c++ - std::shared_ptr:带有自定义删除器的 typedef

这个问题在这里已经有了答案:Typedefashared_ptrtypewithastaticcustomdeleter,similartounique_ptr(2个答案)关闭7年前。我正在使用SDL2开发C++应用程序,并希望使用shared_ptr来保存指针内容。所以我做例如这个:typedefstd::shared_ptrSDLWindowPtr;而且我需要在整个过程中使用自定义删除器。是否可以将其包含在typedef中?如果是,如何?删除函数称为SDL_DestroyWindow。如果没有,如何让shared_ptr使用SDL_DestroyWindow作为自定义删除函数?提前

c++ - 为什么编译器无法区分 typedef 和非 typedef?

抱歉,标题太长了。我在类列表中有一个typedef:templateclassList{//ThinkofaclassIter_withListElem*pCurrentPosandList*pListtypedefconstIter_const_iterator;const_iteratorcbegin()const;};以及在类之外但在头文件内的定义。templatetypenameList::const_iteratorList::cbegin()const{}这会产生错误C2373:Redefinition;不同的类型修饰符我重写了这个函数:templateconsttypen

c++ - 使用模板公开私有(private) Typedef

我有一个包含私有(private)typedef和几个成员的类功能:classFoo{private:typedefstd::blahblahFooPart;FooPartm_fooPart;...public:intsomeFn1();intsomeFn2();};几个成员函数需要以类似的方式使用m_fooPart,所以我想把它放在一个函数中。我将辅助函数放在匿名中命名空间,但在这种情况下,他们需要知道什么FooPart是。所以,我这样做了:namespace{templateinthelperFn(constT&foopart,intindex){...returnfoopart.

c++ - 在模板中使用 typedef 和 typename

我想在模板类中定义一个类型名称,我可以在其他地方使用它来引用类中成员的类型。templateclassCA{public://typedeftypenameT::iteratoriterator_type;typedeftypenameTElementType1;//compileerroronthisline//typedefTElementType2;Tm_element;};并像这样使用它:templateclassCDerived:publicCBase{//...};并声明如下对象:typedefCDerivedMyNewClass;这不可能吗?我有一些代码可以在VS2010

c++ - 使用 typedef 别名作为参数重载成员方法

我在C++中重载方法时遇到了一些问题。typedefcharint8_t;classSomeClass{public:…voidMethod(int8_tparamater);voidMethod(charparamater);};因为int8_t是typedefaschar它们只是别名,它们可能引用相同的类型,在这种情况下重载将不起作用。我想让它们同时工作?你能提出相同的解决方案吗?注意:我不想添加模板化方法。错误如下:Error:MultipledeclarationforSomeClass::Method(char) 最佳答案

c++ - 如何为相同类型的 typedef 提供模板特化?

第3方SDK定义了几个typedef,例如:typedefunsignedcharSDK_BYTEtypedefdoubleSDK_DOUBLEtypedefunsignedcharSDK_BOOLEAN它还定义了一个变体类型SdkVariant:classSdkVariant{public:enumSdkType{SdkByte,SdkDouble,SdkBoolean};booltoByte(SDK_BYTE&);booltoDouble(SDK_DOUBLE&);booltoBool(SDK_BOOLEAN&);SdkTypetype();};从这样的变体中检索值看起来像这样(假

c++ - 在 C++ 中使用函数 typedef 定义函数

我正在Windows中实现一项服务。VisualStudio2012具有以下函数typedef:typedefVOIDWINAPISERVICE_MAIN_FUNCTIONW(DWORDdwNumServicesArgs,LPWSTR*lpServiceArgVectors);还有一个函数指针typedef:typedefVOID(WINAPI*LPSERVICE_MAIN_FUNCTIONW)(DWORDdwNumServicesArgs,LPWSTR*lpServiceArgVectors);如何使用typedef定义具有此函数签名的函数? 最佳答案